using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("FourCC")]
	public class FourCC : MonoClass
	{
		public uint m_value => method_2<uint>("m_value");

		public FourCC(IntPtr address, string className)
			: base(address, className)
		{
		}

		public FourCC(IntPtr address)
			: this(address, "FourCC")
		{
		}

		public static FourCC op_Implicit(uint val)
		{
			return MonoClass.smethod_15<FourCC>(TritonHs.MainAssemblyPath, "", "FourCC", "op_Implicit", new object[1] { val });
		}

		public static bool op_Equality(uint val, FourCC fourCC)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "FourCC", "op_Equality", new Class276.Enum20[2]
			{
				Class276.Enum20.U4,
				Class276.Enum20.Class
			}, new object[2] { val, fourCC });
		}

		public static bool op_Equality(FourCC fourCC, uint val)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "FourCC", "op_Equality", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.U4
			}, new object[2] { fourCC, val });
		}

		public static bool op_Inequality(uint val, FourCC fourCC)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "FourCC", "op_Inequality", new Class276.Enum20[2]
			{
				Class276.Enum20.U4,
				Class276.Enum20.Class
			}, new object[2] { val, fourCC });
		}

		public static bool op_Inequality(FourCC fourCC, uint val)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "FourCC", "op_Inequality", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.U4
			}, new object[2] { fourCC, val });
		}

		public static bool op_Equality(FourCC a, FourCC b)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "FourCC", "op_Equality", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[2] { a, b });
		}

		public static bool op_Inequality(FourCC a, FourCC b)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "FourCC", "op_Inequality", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, new object[2] { a, b });
		}

		public FourCC Clone()
		{
			return method_14<FourCC>("Clone", Array.Empty<object>());
		}

		public uint GetValue()
		{
			return method_11<uint>("GetValue", Array.Empty<object>());
		}

		public void SetValue(uint val)
		{
			method_8("SetValue", val);
		}

		public string GetString()
		{
			return method_13("GetString");
		}

		public void SetString(string str)
		{
			method_8("SetString", str);
		}

		public void CopyFrom(FourCC other)
		{
			method_8("CopyFrom", other);
		}

		public new bool Equals(object obj)
		{
			return method_10<bool>("Equals", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { obj });
		}

		public bool Equals(FourCC other)
		{
			return method_10<bool>("Equals", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { other });
		}

		public new int GetHashCode()
		{
			return method_11<int>("GetHashCode", Array.Empty<object>());
		}

		public new string ToString()
		{
			return method_13("ToString");
		}
	}
}
